package com.bifang.common.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;

/**
 * 业务日志主表
 *
 * @author chenzh
 * @since 2020-06-12
 */
@Data
@ApiModel(value = "Oplog时间轴对象", description = "业务日志主表")
public class OplogTimelineVO extends BaseVO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "操作日志id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long oplogId;

    @ApiModelProperty(value = "业务所属行政区划")
    private String areaCode;

    @ApiModelProperty(value = "业务所属行政区划 中文")
    private String areaName;

    @ApiModelProperty(value = "路由id")
    private String routerId;

    @ApiModelProperty(value = "路由名称")
    private String routerTitle;

    @ApiModelProperty(value = "功能id")
    private String funcId;

    @ApiModelProperty(value = "功能名称")
    private String funcTitle;

    @ApiModelProperty(value = "标题（路由+功能）")
    private String title;

    @ApiModelProperty(value = "业务类型")
    private String operationType;

    @ApiModelProperty(value = "业务名称")
    private String operationName;

    @ApiModelProperty(value = "业务年月")
    private Integer dateYm;

    @ApiModelProperty(value = "数据类型")
    private String dataType;

    @ApiModelProperty(value = "数据id")
    private String dataId;

    @ApiModelProperty(value = "组织id")
    private String orgId;

    @ApiModelProperty(value = "批量业务标识 0 否 1 是")
    private String batchFlag;

    @ApiModelProperty(value = "操作用户id")
    private String opUserId;

    @ApiModelProperty(value = "操作员姓名")
    private String opName;

    @ApiModelProperty(value = "操作时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date opTime;

    @ApiModelProperty(value = "摘要")
    private String remarks;

    @ApiModelProperty(value = "组织单位编码")
    private String orgCode;

    @ApiModelProperty(value = "组织单位名称")
    private String orgName;

    @ApiModelProperty(value = "人员id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long personId;

    @ApiModelProperty(value = "最终审核状态 0 未审核 1 审核通过 2 审核不通过")
    private String authStatus;

    @ApiModelProperty(value = "最终审核状态 中文")
    private String authStatusName;

    @ApiModelProperty(value = "最终审核说明")
    private String authRemarks;

    @ApiModelProperty(value = "最终审核人")
    private String authUserId;

    @ApiModelProperty(value = "最终审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date authTime;

    @ApiModelProperty(value = "联办日志id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long unionOplogId;

    @ApiModelProperty(value = "回退人")
    private String rbUserId;

    @ApiModelProperty(value = "回退原因")
    private String rbRemarks;

    @ApiModelProperty(value = "回退时间")
    private Date rbTime;

    @ApiModelProperty(value = "回退状态 0 未回退 1 已回退")
    private String rbStatus;

    @ApiModelProperty(value = "实际经办日期")
    private Integer opDate;

    @ApiModelProperty(value = "所属期id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long periodSameId;

    @ApiModelProperty(value = "业务流水号")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal busNo;

    @ApiModelProperty(value = "工作流中审核类型 start 开始启动节点  ing 审核中节点 end 审核结束节点")
    private String auType;

    @ApiModelProperty(value = "上级操作日志id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long parentId;

    @ApiModelProperty(value = "排列顺序")
    private Integer orderNo;

    @ApiModelProperty(value = "流程节点定义参数id")
    private String flowNodeId;

    @ApiModelProperty(value = "任务实例id")
    private String executionId;

    @ApiModelProperty(value = "流程定义id")
    private String procDefId;

    @ApiModelProperty(value = "签收人id")
    private String assignee;

    @ApiModelProperty(value = "签收人id对应名称")
    private String assigneeName;

    @ApiModelProperty(value = "签收人类型 1个人 2组织")
    private String assigneeType;

    @ApiModelProperty(value = "是否自动审核 0 否 1 是")
    private String automaticFlag;

    @ApiModelProperty(value = "表单key")
    private String formKey;

    @ApiModelProperty(value = "节点id")
    private String actId;

    @ApiModelProperty(value = "上级节点id")
    private String parentActId;

    @ApiModelProperty(value = "流程节点名称")
    private String actName;

    @ApiModelProperty(value = "任务id")
    private String taskId;

    @ApiModelProperty(value = "审批意见类型")
    private String commentType;

    @ApiModelProperty(value = "审批意见类型中文")
    private String commentTypeName;

    @ApiModelProperty(value = "流程实例ID 一个流程实例不管有多少条分支实例，这个ID都是一致的")
    private String procInstId;

    @ApiModelProperty(value = "任务状态 wait_claim待签收 wait_complete待办 finish 已办")
    private String taskStatus;

    @ApiModelProperty(value = "任务状态中文")
    private String taskStatusName;
}
